The scaling option.

The ``variable length'' option has allowed us to design properly the diagram of ยง12. But you can possibly not be satisfied with the final product, because the resulting diagram is unusually big for the few arrows it does contain. This is easily corrected!

Replacing the initial command ++ by the corresponding ``variable scale'' command +n+ will scale the original pattern of points by n% and adjust correspondingly the length of every arrow in the diagram. For example typing

\DIAGV{50}
{A}\n{}         \n{\Earv{f}{130}}\n{}          \n{C}\nn
{} \n{\seepI{p}}\n{}             \n{\nemonO{i}}\nn
{} \n{}         \n{B}
\diag
will produce the following result 50 A f130 C p i B

Since text characters (and various other things) are unaffected by the scaling process, you should avoid reducing exagerately a diagram. In most cases, a reduction up to 50% gives excellent results. On the other hand, an enlargement can be helpful when handling vertices with very long names.

This ``variable scale'' option is particularly useful when designing ``three dimensional'' diagrams, which require very often a rather dense pattern of reference points and many ``long'' arrows produced via the ``variable length'' option. For example to design the following cube

50 B b130 D a d A c100130 f0-8130 C h130 e130 F j-100130 g08130 H i l E k130 G it suffices to type

\DIAGV{50}
{} \n{} \n{B} \n{} \n{\Earv{b}{130}} \n{} \n{D} \nn
{} \n{\Near{a}} \n{} \n{} \n{} \n{\Near{d}} \n{} \nn
{A} \n{} \n{\cross{\Earv{\movename{c}{10}{0}}{130}}
  {\Sarv{\movename{f}{0}{-13}}{130}}}
  \n{} \n{C} \n{} \n{\saRv{h}{130}} \nn
{} \nn
{\Sarv{e}{130}} \n{} \n{F} \n{}
  \n{\cross{\eaRv{\movename{j}{-10}{0}}{130}}
  {\saRv{\movename{g}{0}{13}}{130}}}
  \n{} \n{H} \nn
{} \n{\Near{i}} \n{} \n{} \n{} \n{\neaR{l}} \nn
{E} \n{} \n{\eaRv{k}{130}} \n{} \n{G}
\diag
where the ++ command is explained in the next section.